package com.wyl.mybatis.service;

import java.sql.*;

/**
 * @Description
 * @Author WuYiLong
 * @Date 2024/2/26 11:36
 */
public class JdbcService {

    /**
     * 数据库链接
     */
    private static final String url = "jdbc:mysql://localhost:3306/blog?zeroDateTimeBehavior=CONVERT_TO_NULL&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT%2B8";

    /**
     * 用户名
     */
    private static final String username = "root";

    /**
     * 密码
     */
    private static final String  password = "123456";

    public static void main(String[] args) {
        try {
            // 加载所需的 JDBC 驱动，这通常是通过调用 Class.forName() 方法来完成的
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 使用 DriverManager.getConnection() 方法建立与数据库的连接。
            Connection connection = DriverManager.getConnection(url, username, password);
            DatabaseMetaData metaData = connection.getMetaData();
            String dataBaseInfo = metaData.getDatabaseProductName()+":"+metaData.getDatabaseProductVersion();
            System.out.println(dataBaseInfo);
            // 创建一个 Statement 或 PreparedStatement 对象来执行 SQL 语句。
            String sql = "SELECT * FROM `b_expert` limit 10;";
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.executeQuery(sql);
            // 如果是查询操作，执行 executeQuery() 方法，并处理返回的 ResultSet。
            ResultSet resultSet = preparedStatement.executeQuery(sql);
            // 通过遍历，输出数据
            while (resultSet.next()) {
                System.out.println("专家名称："+resultSet.getString("name"));
            }
            // 关闭 ResultSet、Statement 和 Connection，以释放数据库资源。
            resultSet.close();
            preparedStatement.close();
            connection.close();
        } catch (SQLException | ClassNotFoundException throwables) {
            System.out.println(throwables.getMessage());
        }
    }
}
